package com.erbao.nettystudy.s03;

import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;

import java.util.List;

/**
 * @author CaoBaoYin
 * @since 21/11/1 17:38
 */
public class TankMsgDecoder extends ByteToMessageDecoder {
    @Override
    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {
        if (in.readableBytes() < 8) return; // 解决tcp的拆包和粘包 例如有“abc”三个字符，可能是“a”一个包或“bc”一个包。服务端有可能收到两个包，或三个包都有可能。

        int x = in.readInt();
        int y = in.readInt();// 因为我们先写的x后写的y

        out.add(new TankMsg(x, y));
    }
}
